package demo1;

import java.util.HashMap;
import java.util.Map;

/**
 * 学生信息类，用于管理学生的基本信息
 */
public class StudentInfo {
    // 使用 Map 存储学生信息，键为学生姓名，值为 Student 对象
    private static Map<String, Student> students = new HashMap<>();

    /**
     * 学生内部类，用于表示单个学生的信息
     */
    static class Student {
        // 学生编号
        private String studentId;
        // 学生姓名
        private String name;
        // 学生性别
        private String gender;
        // 学生身份证号
        private String idCard;

        /**
         * 构造函数，用于初始化学生信息
         * @param studentId 学生编号
         * @param name 学生姓名
         * @param gender 学生性别
         * @param idCard 学生身份证号
         */
        public Student(String studentId, String name, String gender, String idCard) {
            this.studentId = studentId;
            this.name = name;
            this.gender = gender;
            this.idCard = idCard;
        }

        /**
         * 获取学生姓名
         * @return 学生姓名
         */
        public String getName() {
            return name;
        }

        /**
         * 重写 toString 方法，用于打印学生信息
         * @return 包含学生信息的字符串
         */
        @Override
        public String toString() {
            return "学生编号: " + studentId + ", 姓名: " + name + ", 性别: " + gender + ", 身份证: " + idCard;
        }
    }

    /**
     * 添加学生信息到 Map 中
     * @param studentId 学生编号
     * @param name 学生姓名
     * @param gender 学生性别
     * @param idCard 学生身份证号
     */
    public static void addStudent(String studentId, String name, String gender, String idCard) {
        students.put(name, new Student(studentId, name, gender, idCard));
    }

    /**
     * 根据学生姓名显示学生信息
     * @param name 学生姓名
     */
    public static void displayStudentInfo(String name) {
        Student student = students.get(name);
        if (student != null) {
            System.out.println(student);
        } else {
            System.out.println("未找到该学生信息");
        }
    }

    /**
     * 根据学生姓名获取学生对象
     * @param name 学生姓名
     * @return 学生对象，如果未找到则返回 null
     */
    public static Student getStudent(String name) {
        return students.get(name);
    }
}
